
#include <stdio.h>

void rearrangeMatrix(int matrix[5][5]) {
    int elements[25];
    int index = 0;

    // 将矩阵中的所有元素存入一维数组
    for (int i = 0; i < 5; ++i) {
        for (int j = 0; j < 5; ++j) {
            elements[index++] = matrix[i][j];
        }
    }

    // 对一维数组进行简单排序（冒泡排序）
    for (int i = 0; i < 24; ++i) {
        for (int j = 0; j < 24 - i; ++j) {
            if (elements[j] > elements[j + 1]) {
                int temp = elements[j];
                elements[j] = elements[j + 1];
                elements[j + 1] = temp;
            }
        }
    }

    // 将4个最小的元素放到4个角
    matrix[0][0] = elements[0];
    matrix[0][4] = elements[1];
    matrix[4][0] = elements[2];
    matrix[4][4] = elements[3];

    // 将最大的元素放到中心
    matrix[2][2] = elements[24];

    // 重新填充剩余的元素
    index = 4; // 从第5个元素开始
    for (int i = 0; i < 5; ++i) {
        for (int j = 0; j < 5; ++j) {
            if ((i == 0 && (j == 0 || j == 4)) || (i == 4 && (j == 0 || j == 4)) || (i == 2 && j == 2)) {
                continue; // 跳过已经填充的位置
            }
            matrix[i][j] = elements[index++];
        }
    }
}

void printMatrix(int matrix[5][5]) {
    for (int i = 0; i < 5; ++i) {
        for (int j = 0; j < 5; ++j) {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
}

int main() {
    int matrix[5][5];
    for (int i = 0; i < 5; ++i) {
        for (int j = 0; j < 5; ++j) {
            scanf("%d", &matrix[i][j]);
        }
    }
    rearrangeMatrix(matrix);
    printMatrix(matrix);
    return 0;
}